iT邦幫忙

2024 iThome 鐵人賽

DAY 30
0

簡介

終於來到本系列的最後一篇文章。在先前的章節中,我們介紹了如何使用套件來開發應用程式,以及如何利用套件提升應用程式的品質。

開發團隊通常需要同時維護多個專案,尤其是在採用微服務架構(Microservice)的團隊中。團隊通常會將各個專案的文件結構、命名規範和配置設定都保持一致,這種標準化的作法有助於提高專案的可讀性和可維護性。例如,團隊維護的數個專案都採用了以下設置:

  1. 都使用 Poetry 來管理套件
  2. 都使用 Black 當作 Formatter,並將語句長度設定為 80
  3. 都使用 Ruff 當作 Linter,並套用 F 以及 N 插件
  4. 都使用相同邏輯的 Logging Handler

因此,每當開發團隊要創建新專案時,往往需要花費時間重新搭建類似的目錄結構和配置相似的依賴套件。

在這篇文章中,我想介紹一個名為 Cookiecutter 的工具。這是一個 Command Line Tool,開發者可以根據預先定義的模板生成新專案,從而省去手動搭建目錄結構和配置的時間,並確保每個專案的設定保持一致。接下來,我將通過範例來進一步介紹這個工具。

安裝

在先前的章節中,我們使用 Poetry 來安裝套件,這是因為不同的專案可能需要使用不同版本的套件,因此必須將這些套件安裝在 Poetry 的虛擬環境中。然而,CookieCutter 命令行工具的目標是生成專案,它本身並不隸屬於任何特定專案,因此不建議通過 Poetry 來安裝。

官方建議使用 pipx 來安裝 CookieCutter。pipx 會將每個 Command Line Tool 安裝在獨立的虛擬環境中,這樣可以避免不同工具之間的版本衝突,同時會將其鏈接到全局路徑,方便開發者在任何目錄下使用這些工具。因此,pipx 非常適合用於管理 Python Command Line Tool。

首先,我們需要先安裝 pipx,大家可以參考 pipx 官方文件 中提供的多種安裝方式,根據自己的需求選擇合適的方法。安裝完成後,我們就可以使用 pipx 來安裝 Cookiecutter。

pipx install cookiecutter

模板

目前在 GitHub 上已有許多現成的模板可供使用,常見的 Web Application 框架(例如 Django 和 Flask) 均有相關模板,開發團隊可以首先使用這些受歡迎的模板,參考其設計規範,然後逐步根據自身團隊的需求進行修改,最終建立出專屬於團隊的模板。

本次範例將使用 GitHub 上熱門的 Flask 模板。只需執行以下指令,模板將根據預設的自訂問題詢問使用者,這些問題可能包括專案名稱、所用的 Python 版本等。模板會根據這些參數生成專案。

cookiecutter https://github.com/cookiecutter-flask/cookiecutter-flask.git

https://ithelp.ithome.com.tw/upload/images/20241013/20168663gKgvr1v3cM.png


上一篇
[Day 29] Selenium
系列文
Python 不止於數據,開發應用程式它也在行!30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言